package cn.tedu.baking.controller;

import cn.tedu.baking.commom.response.JsonResult;
import cn.tedu.baking.pojo.dto.UserChangeDTO;
import cn.tedu.baking.pojo.dto.UserLoginDTO;
import cn.tedu.baking.pojo.dto.UserRegDTO;
import cn.tedu.baking.pojo.dto.UserUpdateDTO;
import cn.tedu.baking.pojo.vo.UserAdminVO;
import cn.tedu.baking.pojo.vo.UserVO;
import cn.tedu.baking.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("v1/users")
public class UserController {
    @Autowired
    IUserService service;
    /*注册*/
    @PostMapping("reg")
    public JsonResult reg(UserRegDTO userRegDTO){
        System.out.println("userRegDTO = " + userRegDTO);
        service.reg(userRegDTO);
        return JsonResult.ok();
    }
    /*登录*/
    @PostMapping("login")
    public JsonResult login(UserLoginDTO userLoginDTO){
        UserVO login = service.login(userLoginDTO);
        return JsonResult.ok(login);
    }

    /*处理修改请求*/
    @PostMapping("update")
    public JsonResult update(UserUpdateDTO userUpdate){
        service.update(userUpdate);
        return JsonResult.ok();
    }

    @GetMapping("")
    public JsonResult list(){
        List<UserAdminVO> list=service.list();
        return JsonResult.ok(list);
    }

    @PostMapping("{id}/delete")
    public JsonResult deleteById(@PathVariable Long id){
        service.deleteById(id);
        return JsonResult.ok();
    }
    @PostMapping("change")
    public JsonResult changeAdmin(UserChangeDTO userChangeDTO){
        service.changeAdmin(userChangeDTO);
        return JsonResult.ok();
    }
}
